package com.easy.utils;

import org.springframework.util.DigestUtils;

public class DigestPassUtil {

    /**
     * 验证数据库中的密码与登录页面传来的密码是否相同
     *
     * @param pass_data  数据库中加密后的内容 加密后的字符串 加密次数 加密盐值
     * @param pass_param 前台页面传来的密码
     * @return
     */
    public static boolean loginpass(String pass_data, String pass_param) {

        // 加密后的结果 --e10adc3949ba59abbe56e057f20f883eas
        // --e10adc3949ba59abbe56e057f20f883e
        String hex_data = pass_data.substring(0, pass_data.length() - 2);
        // as
        String hex_code = pass_data.substring(pass_data.length() - 2);
        // ['a','s']
        char[] code_arr = hex_code.toCharArray();
        String salt_pass = pass_param + code_arr[1];
        for (int i = 0; i < code_arr[0]; i++) {
            salt_pass = DigestUtils.md5DigestAsHex(salt_pass.getBytes());
        }
        // 循环完毕salt_pass就是加密后的结果
        // salt_pass和数据库中保存的加密结果比对
        return hex_data.equals(salt_pass);
    }

    public static void main(String[] args) {
//        String pass = "123456s";
//        int count = 'd';
//        for (int i = 0; i < count; i++) {
//            pass = DigestUtils.md5DigestAsHex(pass.getBytes());
//
//        }
//        // 51119dac655209e284c4423789700951
//        System.out.println(pass);
        //System.out.println(newPass());



    }

    public static final String DEFAULTPASS = "123456";

    public static String newPass(String pass) {
        /*随机加密次数，颜值*/
        int ran_count= (int) (Math.random()*26+97);
        int ran_salt= (int) (Math.random()*26+97);
        String result_pass=pass==null?DEFAULTPASS+(char)ran_salt:pass+(char)ran_salt;
        for (int i=0; i<ran_count;i++){
            result_pass=DigestUtils.md5DigestAsHex(result_pass.getBytes());
        }

        result_pass=result_pass+(char)ran_count+(char)ran_salt;
        return  result_pass;

    }


}
